#ifndef __CIdGenerator_H__
#define __CIdGenerator_H__

namespace compfwk
{
    class CIdGenerator
    {
    public:
        //! Returns the unique instance of the CIdGenerator
        static CIdGenerator& Instance( void );

        //! Generates a new id
        int NewId( void );

    private:
        //===================== DATA MEMBERS =======================
        //Generates the next id
        int m_seed;

        //===================== METHODS ============================
        //Default constructor
        CIdGenerator( );

        //! Destructor
        ~CIdGenerator( );

        //! Copy constructor
        CIdGenerator( const CIdGenerator& ar_idgen );

        //! Assignment operator
        CIdGenerator& operator =( const CIdGenerator& ar_idgen );
    };
}

#endif
